package com.hemaapp.yjnh;

import xtom.frame.XtomActivityManager;
import xtom.frame.net.XtomNetWorker;
import android.content.Intent;

import com.hemaapp.yjnh.activity.LoginActivity;
import com.hemaapp.yjnh.view.YjnhProgressDialog;
import com.hemaapp.hm_FrameWork.HemaFragmentActivity;
import com.hemaapp.hm_FrameWork.HemaNetTask;
import com.hemaapp.hm_FrameWork.HemaNetWorker;
import com.hemaapp.hm_FrameWork.result.HemaBaseResult;

public abstract class BaseFragmentActivity extends HemaFragmentActivity {

	private YjnhProgressDialog progressDialog;
	
	@Override
	protected HemaNetWorker initNetWorker() {
		return new BaseNetWorker(mContext);
	}

	@Override
	public BaseNetWorker getNetWorker() {
		return (BaseNetWorker) super.getNetWorker();
	}

	@Override
	public BaseApplication getApplicationContext() {
		return (BaseApplication) super.getApplicationContext();
	}

	@Override
	public boolean onAutoLoginFailed(HemaNetWorker netWorker,
			HemaNetTask netTask, int failedType, HemaBaseResult baseResult) {
		switch (failedType) {
			case 0:// 服务器处理失败
				int error_code = baseResult.getError_code();
				switch (error_code) {
					case 102:// 密码错误
						XtomActivityManager.finishAll();
						Intent it = new Intent(mContext, LoginActivity.class);
						startActivity(it);
						return true;
					default:
						break;
				}
			case XtomNetWorker.FAILED_HTTP:// 网络异常
			case XtomNetWorker.FAILED_DATAPARSE:// 数据异常
			case XtomNetWorker.FAILED_NONETWORK:// 无网络
				break;
		}
		return false;
	}

	@Override
	public void finish() {
		if (progressDialog != null)
			progressDialog.cancelImmediately();
		super.finish();
	}

	// ------------------------下面填充项目自定义方法---------------------------
	public BaseApplication getMyApplication() {
		return getApplicationContext();
	}
	
//	public void loadImage_default4(String imgpath, ImageView imageview) {
//		// if(mBusy)
//		// return;
//		log_w("loadImage  imgpath = " + imgpath);
//		URL url = null;
//		String newimgpath;
//		try {
//			newimgpath = imgpath;
//			url = new URL(newimgpath);
//		} catch (MalformedURLException e) {
//			// imageview.setImageBitmap(null);
//			log_w("loadImage error");
//			imageview.setImageResource(R.drawable.no_pic);
//			return;
//		}
//
//		this.imageWorker.loadImage(new XtomImageTask(imageview, url, this) {
//			@Override
//			public void beforeload() {
//				getImageView().setImageResource(R.drawable.pic_loading);
//			}
//
//			@Override
//			public void failed() {
//				getImageView().setImageResource(R.drawable.no_pic);
//			}
//
//		});
//	}
//	/**
//	 * 保存城市名称
//	 * 
//	 * @param cityName
//	 */
//	public void saveCityName(String cityName) {
//		XtomSharedPreferencesUtil.save(this, "city_name", cityName);
//	}
//
//	/**
//	 * @return 获取城市名称
//	 */
//	public String getCityName() {
//		return XtomSharedPreferencesUtil.get(this, "city_name");
//	}
//
//	/**
//	 * 保存城市id
//	 * 
//	 * @param cityId
//	 */
//	public void saveCityId(String cityId) {
//		XtomSharedPreferencesUtil.save(this, "city_id", cityId);
//	}
//
//	/**
//	 * @return 获取城市id
//	 */
//	public String getCityId() {
//		return XtomSharedPreferencesUtil.get(this, "city_id");
//	}
//
//	/**
//	 * 保存地区名称(此地区名称为用户最终获取数据的地区)
//	 * 
//	 * @param districtName
//	 */
//	public void saveDistrictName(String districtName) {
//		XtomSharedPreferencesUtil.save(this, "district_name", districtName);
//	}
//
//	/**
//	 * @return 获取地区名称(此地区名称为用户最终获取数据的地区)
//	 */
//	public String getDistrictName() {
//		return XtomSharedPreferencesUtil.get(this, "district_name");
//	}
	
	/**
	 * 显示交互弹窗(默认不可以点击弹窗外侧取消)
	 * 
	 * @param text
	 *            弹窗提示语
	 */
	public void showProgressDialog(String text) {
		if (progressDialog == null)
			progressDialog = new YjnhProgressDialog(this);
		progressDialog.setText(text);
		progressDialog.setCancelable(false);
		progressDialog.show();
	}

	/**
	 * 显示交互弹窗
	 * 
	 * @param text
	 *            弹窗提示语id
	 * @param cancelable
	 *            是否可以点击弹窗外侧取消
	 */
	public void showProgressDialog(String text, boolean cancelable) {
		if (progressDialog == null)
			progressDialog = new YjnhProgressDialog(this);
		progressDialog.setText(text);
		progressDialog.setCancelable(cancelable);
		progressDialog.show();
	}
	
	/**
	 * 显示交互弹窗(默认不可以点击弹窗外侧取消)
	 * 
	 * @param text
	 *            弹窗提示语
	 */
	public void showProgressDialog(int text) {
		if (progressDialog == null)
			progressDialog = new YjnhProgressDialog(this);
		progressDialog.setText(text);
		progressDialog.setCancelable(false);
		progressDialog.show();
	}

	/**
	 * 显示交互弹窗
	 * 
	 * @param text
	 *            弹窗提示语id
	 * @param cancelable
	 *            是否可以点击弹窗外侧取消
	 */
	public void showProgressDialog(int text, boolean cancelable) {
		if (progressDialog == null)
			progressDialog = new YjnhProgressDialog(this);
		progressDialog.setText(text);
		progressDialog.setCancelable(cancelable);
		progressDialog.show();
	}

	/**
	 * 取消交互弹窗(同时setCancelable(false))
	 */
	public void cancelProgressDialog() {
		if (progressDialog != null) {
			progressDialog.setCancelable(false);
			progressDialog.cancel();
		}
	}

//	@Override
//	public Resources getResources() {
//		if(isNeedSystemResConfig()){
//			return super.getResources();
//		}else{
//			Resources res = super.getResources();
//			Configuration config=new Configuration();
//			config.setToDefaults();
//			res.updateConfiguration(config,res.getDisplayMetrics() );
//			return res;
//		}
//	}
//	// 默认返回true，使用系统资源，如果个别界面不需要，在这些activity中Override this method ，then return false;
//	protected boolean isNeedSystemResConfig() {
//		return false;
//	}
}
